
import { isArray, safeGet } from "@/common.js"
// 进行语法高亮
export const syntaxHighlight = function (json) {
  json = json.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
  return json.replace(/("(\u[a-zA-Z0-9]{4}|\[^u]|[^\"])*"(s*:)?|true|false|null|[\[\]]|[0-9]+|-?d+(?:.d*)?(?:[eE][+-]?d+)?)/g, function (match) {
    var cls = 'number';
    if (/^"/.test(match)) {
      if (/:$/.test(match)) {
        cls = 'key';
      } else {
        cls = 'string';
      }
    } else if (/true|false/.test(match)) {
      cls = 'boolean';
    } else if (/[\[\]]/.test(match)) {
      cls = 'array';
    } else if (/[0-9]+/.test(match)) {
      cls = 'number';
    } else if (/null/.test(match)) {
      cls = 'null';
    }
    return '<span class="' + cls + '">' + match + '</span>';
  })
}
// 格式化导入的json
// export const formateImportJson = function () {
//   this.isEdit = !this.isEdit
//   this.formHtml = this.outerText ? syntaxHighlight(this.outerText) : ''
// }
// 改变导入的json。重pre标签中拿到
export const changeImportJson = function (e) {
  // console.log(e.target.outerText)
  // this.importJsonObj.outerText = e.target.outerText
}
// 导入json
export const importJson = function () {
  if(!this.outerText) {
    return this.$Message.error('请先填写数据')
  } else {
    const outerTextParse = safeGet(() => JSON.parse(this.outerText), '')
    // console.log(outerTextParse)
    if(!isArray(outerTextParse)) {
      return this.$Message.error('您输入的json格式不对，请检查！')
    }
  }
  // const operateForm = [...this.operateForm, ...JSON.parse(this.outerText)] // 追加模式
  const operateForm = JSON.parse(this.outerText) // 覆盖模式
  this.$emit('setOperateForm', operateForm)
  this.$Message.success('导入成功')
  this.$emit('setIsShow', false)
}